﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/**
 * Lists all available zip codes in Iceland
 * The list is taken from 
 * http://is.wikipedia.org/wiki/Listi_yfir_%C3%ADslensk_p%C3%B3stn%C3%BAmer
 * 
 * @author Ingi Gauti Ragnarsson
 */
namespace Is.Net {
	public class ZipCode {
		public int Zip { get; set; }
		public string Name { get; set; }
		public string Description { get; set; }
		public bool POBox { get; set; }

		public ZipCode(int zip, string name) : this(zip, name, "", false) { }
		public ZipCode(int zip, string name, string description) : this(zip, name, description, false) { }
		public ZipCode(int zip, string name, string description, bool poBox) {
			Zip = zip;
			Name = name;
			Description = description;
			POBox = poBox;
		}
	}

	public class ZipCodes {

		public static List<ZipCode> GetZipCodes() {
			var l = new List<ZipCode>();
			l.Add(new ZipCode(101, "Reykjavík", "(Miðbær, Gamli Vesturbærinn, Gamli austurbærinn, Grjótaþorp, Reykjavíkurflugvöllur, Skerjafjörður)"));
			l.Add(new ZipCode(102, "Reykjavík", "(Fyrirtækjapósthús. Ekki notað í almennar utanáskriftir.)"));
			l.Add(new ZipCode(103, "Reykjavík", "(Kringlan og nágrenni)"));
			l.Add(new ZipCode(104, "Reykjavík", "(Laugardalur, Sundahöfn)"));
			l.Add(new ZipCode(105, "Reykjavík", "(Hlíðar, Laugardalur)"));
			l.Add(new ZipCode(107, "Reykjavík", "(Vesturbær)"));
			l.Add(new ZipCode(108, "Reykjavík", "(Fossvogur, Háaleiti, Skeifan)"));
			l.Add(new ZipCode(109, "Reykjavík", "(Neðra-Breiðholt)"));
			l.Add(new ZipCode(110, "Reykjavík", "(Árbær, Bryggjuhverfi, Norðlingaholt)"));
			l.Add(new ZipCode(111, "Reykjavík", "(Efra-Breiðholt)"));
			l.Add(new ZipCode(112, "Reykjavík", "(Grafarvogur)"));
			l.Add(new ZipCode(113, "Reykjavík", "(Grafarholt)"));
			l.Add(new ZipCode(116, "Kjalarnes"));
			l.Add(new ZipCode(121, "Reykjavík", "(pósthólf í Pósthússtræti 5)", true));
			l.Add(new ZipCode(123, "Reykjavík", "(pósthólf í Síðumúla 3-5)", true));
			l.Add(new ZipCode(124, "Reykjavík", "(pósthólf í Síðumúla 3-5)", true));
			l.Add(new ZipCode(125, "Reykjavík", "(pósthólf í Síðumúla 3-5)", true));
			l.Add(new ZipCode(127, "Reykjavík", "(pósthólf á Eiðistorgi 15, Seltjarnarnesi)", true));
			l.Add(new ZipCode(128, "Reykjavík", "(pósthólf í Síðumúla 3-5)", true));
			l.Add(new ZipCode(129, "Reykjavík", "(pósthólf í Mjóddinni, Þönglabakka 9))", true));
			l.Add(new ZipCode(130, "Reykjavík", "(pósthólf í Hraunbæ 119)", true));
			l.Add(new ZipCode(132, "Reykjavík", "(pósthólf í Hverafold 1-3)", true));
			l.Add(new ZipCode(150, "Reykjavík", "(Fyrirtækjapósthús. Notað í utanáskriftir fyrir ýmis fyrirtæki og stofnanir)", true));
			l.Add(new ZipCode(155, "Reykjavík", "(Fyrirtækjapósthús. Notað í utanáskriftir fyrir ýmis fyrirtæki og stofnanir)", true));
			l.Add(new ZipCode(170, "Seltjarnarnes"));
			l.Add(new ZipCode(172, "Seltjarnarnes", "(pósthólf)", true));
			l.Add(new ZipCode(190, "Vogar"));
			l.Add(new ZipCode(200, "Kópavogur", "(Kársnes, Austurbær)"));
			l.Add(new ZipCode(201, "Kópavogur", "(Smárinn, Lindir, Salir)"));
			l.Add(new ZipCode(202, "Kópavogur", "(pósthólf)", true));
			l.Add(new ZipCode(203, "Kópavogur", "(Vatnsendaland)"));
			l.Add(new ZipCode(210, "Garðabær"));
			l.Add(new ZipCode(212, "Garðabær", "(pósthólf)", true));
			l.Add(new ZipCode(220, "Hafnarfjörður", "(Norður-, Vestur- og Suðurbær, Hvaleyrarholt)"));
			l.Add(new ZipCode(221, "Hafnarfjörður", "(Ásland, Setberg)"));
			l.Add(new ZipCode(222, "Hafnarfjörður", "(pósthólf)", true));
			l.Add(new ZipCode(225, "Álftanes"));
			l.Add(new ZipCode(230, "Reykjanesbær", "(Keflavík)"));
			l.Add(new ZipCode(232, "Reykjanesbær", "(pósthólf)"));
			l.Add(new ZipCode(233, "Reykjanesbær", "(Hafnir)"));
			l.Add(new ZipCode(235, "Keflavíkurflugvöllur"));
			l.Add(new ZipCode(240, "Grindavík"));
			l.Add(new ZipCode(245, "Sandgerði"));
			l.Add(new ZipCode(250, "Garður"));
			l.Add(new ZipCode(260, "Reykjanesbær", "(Njarðvík)"));
			l.Add(new ZipCode(270, "Mosfellsbær"));
			l.Add(new ZipCode(300, "Akranes"));
			l.Add(new ZipCode(301, "Akranes", "(dreifbýli)"));
			l.Add(new ZipCode(302, "Akranes", "(pósthólf)", true));
			l.Add(new ZipCode(310, "Borgarnes"));
			l.Add(new ZipCode(311, "Borgarnes", "(dreifbýli, Háskólinn á Bifröst, Hvanneyri og Mótel Venus)"));
			l.Add(new ZipCode(320, "Reykholt í Borgarfirði"));
			l.Add(new ZipCode(340, "Stykkishólmur"));
			l.Add(new ZipCode(345, "Flatey á Breiðafirði"));
			l.Add(new ZipCode(350, "Grundarfjörður"));
			l.Add(new ZipCode(355, "Ólafsvík"));
			l.Add(new ZipCode(356, "Snæfellsbær"));
			l.Add(new ZipCode(360, "Hellissandur"));
			l.Add(new ZipCode(370, "Búðardalur"));
			l.Add(new ZipCode(371, "Búðardalur", "(dreifbýli)"));
			l.Add(new ZipCode(380, "Reykhólahreppur"));
			l.Add(new ZipCode(400, "Ísafjörður"));
			l.Add(new ZipCode(401, "Ísafjörður", "(dreifbýli)"));
			l.Add(new ZipCode(410, "Hnífsdalur"));
			l.Add(new ZipCode(415, "Bolungarvík"));
			l.Add(new ZipCode(420, "Súðavík"));
			l.Add(new ZipCode(425, "Flateyri"));
			l.Add(new ZipCode(430, "Suðureyri"));
			l.Add(new ZipCode(450, "Patreksfjörður"));
			l.Add(new ZipCode(451, "Patreksfjörður", "(dreifbýli)"));
			l.Add(new ZipCode(460, "Tálknafjörður"));
			l.Add(new ZipCode(465, "Bíldudalur"));
			l.Add(new ZipCode(470, "Þingeyri"));
			l.Add(new ZipCode(471, "Þingeyri", "(dreifbýli)"));
			l.Add(new ZipCode(500, "Staður"));
			l.Add(new ZipCode(510, "Hólmavík"));
			l.Add(new ZipCode(512, "Hólmavík", "(sveitabæirnir Laugaból, Kirkjuból, Nauteyri, Hafnardalur, Melgraseyri, Laugaland, Laugarholt og Skjaldfönn sem áður tilheyrðu fyrrum Nauteyrarhrepp í póstnúmeri 510 fengu þetta númer frá og með 1. desember 2004)"));
			l.Add(new ZipCode(520, "Drangsnes"));
			l.Add(new ZipCode(522, "Kjörvogur"));
			l.Add(new ZipCode(523, "Bær"));
			l.Add(new ZipCode(524, "Norðurfjörður"));
			l.Add(new ZipCode(530, "Hvammstangi"));
			l.Add(new ZipCode(531, "Hvammstangi", "(dreifbýli)"));
			l.Add(new ZipCode(540, "Blönduós"));
			l.Add(new ZipCode(541, "Blönduós", "(dreifbýli)"));
			l.Add(new ZipCode(545, "Skagaströnd"));
			l.Add(new ZipCode(550, "Sauðárkrókur"));
			l.Add(new ZipCode(551, "Sauðárkrókur", "(dreifbýli)"));
			l.Add(new ZipCode(560, "Varmahlíð"));
			l.Add(new ZipCode(565, "Hofsós"));
			l.Add(new ZipCode(566, "Hofsós", "(dreifbýli)"));
			l.Add(new ZipCode(570, "Fljót"));
			l.Add(new ZipCode(580, "Siglufjörður"));
			l.Add(new ZipCode(600, "Akureyri", "(Akureyri sunnan Glerár)"));
			l.Add(new ZipCode(601, "Akureyri", "(Arnarneshreppur, Hörgárbyggð, Eyjafjarðarsveit, Svalbarðsstrandarhreppur, Grýtubakkahreppur utan þéttbýlis á Grenivík og fyrrum Hálshreppur)"));
			l.Add(new ZipCode(602, "Akureyri", "(pósthólf)", true));
			l.Add(new ZipCode(603, "Akureyri", "(Glerárhverfi)"));
			l.Add(new ZipCode(610, "Grenivík"));
			l.Add(new ZipCode(611, "Grímsey"));
			l.Add(new ZipCode(620, "Dalvík"));
			l.Add(new ZipCode(621, "Dalvík", "(dreifbýli)"));
			l.Add(new ZipCode(625, "Ólafsfjörður"));
			l.Add(new ZipCode(630, "Hrísey"));
			l.Add(new ZipCode(640, "Húsavík"));
			l.Add(new ZipCode(641, "Húsavík", "(dreifbýli)"));
			l.Add(new ZipCode(645, "Fosshóll"));
			l.Add(new ZipCode(650, "Laugar"));
			l.Add(new ZipCode(660, "Mývatn"));
			l.Add(new ZipCode(670, "Kópasker"));
			l.Add(new ZipCode(671, "Kópasker", "(dreifbýli)"));
			l.Add(new ZipCode(675, "Raufarhöfn"));
			l.Add(new ZipCode(680, "Þórshöfn"));
			l.Add(new ZipCode(681, "Þórshöfn", "(dreifbýli)"));
			l.Add(new ZipCode(685, "Bakkafjörður"));
			l.Add(new ZipCode(690, "Vopnafjörður"));
			l.Add(new ZipCode(700, "Egilsstaðir"));
			l.Add(new ZipCode(701, "Egilsstaðir", "(dreifbýli)"));
			l.Add(new ZipCode(710, "Seyðisfjörður"));
			l.Add(new ZipCode(715, "Mjóifjörður"));
			l.Add(new ZipCode(720, "Borgarfjörður eystri"));
			l.Add(new ZipCode(730, "Reyðarfjörður"));
			l.Add(new ZipCode(735, "Eskifjörður"));
			l.Add(new ZipCode(740, "Neskaupstaður"));
			l.Add(new ZipCode(750, "Fáskrúðsfjörður"));
			l.Add(new ZipCode(755, "Stöðvarfjörður"));
			l.Add(new ZipCode(760, "Breiðdalsvík"));
			l.Add(new ZipCode(765, "Djúpivogur"));
			l.Add(new ZipCode(780, "Höfn í Hornafirði"));
			l.Add(new ZipCode(781, "Höfn í Hornafirði", "(dreifbýli)"));
			l.Add(new ZipCode(785, "Öræfi"));
			l.Add(new ZipCode(800, "Selfoss"));
			l.Add(new ZipCode(801, "Selfoss", "(dreifbýli)"));
			l.Add(new ZipCode(802, "Selfoss", "(pósthólf)"));
			l.Add(new ZipCode(810, "Hveragerði"));
			l.Add(new ZipCode(815, "Þorlákshöfn"));
			l.Add(new ZipCode(820, "Eyrarbakki"));
			l.Add(new ZipCode(825, "Stokkseyri"));
			l.Add(new ZipCode(840, "Laugarvatn"));
			l.Add(new ZipCode(845, "Flúðir"));
			l.Add(new ZipCode(850, "Hella"));
			l.Add(new ZipCode(851, "Hella", "(dreifbýli)"));
			l.Add(new ZipCode(860, "Hvolsvöllur"));
			l.Add(new ZipCode(861, "Hvolsvöllur", "(dreifbýli)"));
			l.Add(new ZipCode(870, "Vík"));
			l.Add(new ZipCode(871, "Vík", "(dreifbýli)"));
			l.Add(new ZipCode(880, "Kirkjubæjarklaustur"));
			l.Add(new ZipCode(900, "Vestmannaeyjar"));
			l.Add(new ZipCode(902, "Vestmannaeyjar", "(pósthólf)", true));

			return l;

		}
	}
}
